from flask_script import Manager  # 可以通过命令行的形式来操作Flask
from flask_migrate import Migrate, MigrateCommand
from info import create_app, db, models

# 2,创建app应用程序(Flask对象)
from info.models import User

app = create_app('develop')  # "develop"表示开发环境, "product"表示生产环境

manager = Manager(app)  # 所有涉及命令的都跟Manager相关
Migrate(app, db)
# 添加命令,用来管理数据库表
manager.add_command('db', MigrateCommand)  # 添加db命令


if __name__ == "__main__":
    # 3,启动app程序
    manager.run()



'''
在虚拟环境中执行数据库迁移相关命令：
        python manage.py db init 数据库管理的初始化，会生成一个迁移文件夹migration
        python manage.py db migrate -m 'initial' 生成数据库迁移文件   (注意导入数据模型models)
        python manage.py db upgrade   根据迁移文件中的upgrade生成数据库中表
'''
#
# # 命令行方式创建管理员账号
# @manager.option("-n", dest="name")
# @manager.option("-p", dest="password")
# def createsuperuser(name, password):
#
#     if not all([name, password]):
#         print("参数不全")
#         return
#
#     from info.models import User
#     user = User()
#     user.nick_name = name
#     user.mobile = name
#     user.password = password
#     user.is_admin = True
#
#     try:
#         db.session.add(user)
#         db.session.commit()
#         print("创建成功")
#         return
#     except Exception as e:
#         print("创建失败： %s" % e)
#         db.session.rollback()